---
title: Overview
metaTitle: Theming
metaDescription: A Theme is a structured collection of design decisions that change the appearance of a UI library. An Amplify UI theme is a structured object of design tokens, breakpoints, and overrides.
supportedFrameworks: angular|flutter|react|react-native|vue
---

import { InlineFilter } from '@/components/InlineFilter';
import { FRAMEWORKS } from '@/data/frameworks';
import { getCustomStaticPath } from '@/utils/getCustomStaticPath';
import AngularPage from './theming.angular.mdx';
import FlutterPage from './theming.flutter.mdx';
import ReactPage from './theming.react.mdx';
import ReactNativePage from './theming.react-native.mdx';
import VuePage from './theming.vue.mdx';

export async function getStaticPaths() {
  return getCustomStaticPath(frontmatter.supportedFrameworks);
}

{/*  `getStaticProps` is required to prevent "Error: getStaticPaths was added without a getStaticProps. Without getStaticProps, getStaticPaths does nothing" */}

export async function getStaticProps() {
  return { props: {} }
}

<InlineFilter filters={['angular']}>
  <AngularPage />
</InlineFilter>
<InlineFilter filters={['flutter']}>
  <FlutterPage />
</InlineFilter>
<InlineFilter filters={['react-native']}>
  <ReactNativePage />
</InlineFilter>
<InlineFilter filters={['react']}>
  <ReactPage />
</InlineFilter>
<InlineFilter filters={['vue']}>
  <VuePage />
</InlineFilter>
